Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Інші
Предмет:
Асемблер

Частина тексту файла

Модуль на С: #include <iostream> using namespace std; extern "C" int calc(int,int,int); //оголошення зовнішньої функції з параметрами //параметри передаються через стек extern "C" const int K=0x6c26; int main() { int A,C; int E; int res; cout<<"Enter numbers:"<<endl; cout<<"A = "; cin>>A; cout<<"C = "; cin>>C; cout<<"E = "; cin>>E; res = calc(A,C,E); cout<<endl<<"Result v C++ is: "<<res<<endl; system("pause"); return 0; } Модуль на Асемблер: .386 .model flat,c .data EXTRN C K:dword ;використання зовнішньої змінної (константи) К з модуля main.cpp format db "Rezult v asm= %d",0 .code printf PROTO arg1:Ptr Byte, printlist: VARARG calc PROC push ebp mov ebp,esp mov eax, dword ptr[ebp+8] ;зчитуємо параметр А в регістр eax mov ebx, dword ptr[ebp+12] ;зчитуємо параметр C в регістр ebx sar ebx,1 ;ділимо на 2 значення ebx (C), sar - зсув вправо для знакових чисел на вказане число бітів, знаковий біт залишається add eax,ebx ;в регістрі eax отримаємо A+C/2 movsx ecx, byte ptr[ebp+16] ;в регістр ecx записуємо байтове значення параметра Е зі знаковим розширенням sar ecx,3 ;ділимо на 8 (2^3) значення ecx, через побітовий зсув вправо на 3-ри біти (знаковий біт зберігається) sub eax,ecx ;в регістрі eax - A+C/2-E/8 add eax,K ;eax=A+C/2-E/8+K згідно варіанту ;mov z,eax push eax invoke printf, addr format, eax pop eax pop ebp ret ;значення в програму на С++ повертається в регістрі EAX calc ENDP END
Антиботан аватар за замовчуванням

05.10.2015 18:10

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини